package com.dlc.shop.user.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dlc.shop.bean.param.UserTagParam;
import com.dlc.shop.user.common.model.UserTagUser;

import java.util.List;

/**
 * 用户和标签关联表
 *
 * @author LGH
 * @date 2020-09-10 08:44:22
 */
public interface UserTagUserService extends IService<UserTagUser> {


    /**
     * 获取标签关联信息根据用户id和标签id
     * @param userId 用户id
     * @param tagId 标签id
     * @return 标签关联信息
     */
    UserTagUser getByUserIdAndTagId(String userId, Long tagId);

    /**
     * 获取用户的标签数量
     * @param userId 用户id
     * @param tagId 标签id
     * @return 结果
     */
    Integer countByUserIdAndTagId(String userId, Long tagId);


    /**
     * 获取用户的标签列表
     * @param userId 用户id
     * @return 标签列表
     */
    List<UserTagParam> getUserTagsUserByUserId(String userId);

    /**
     * 批量清除用户在该品牌下的对应分类的手动标签
     * @param userIds 用户id集合
     * @param tagCategory 标签分类
     * @param shopId 店铺id
     */
    void removeBatchShopTag(List<String> userIds, Integer tagCategory, Long shopId);

    /**
     * 移除标签通过用户id和标签关联id
     * @param userId 用户id
     * @param userTagId 用户标签关联id
     * @return 结果
     */
    Boolean removeByUserIdAndTagId(String userId, Long userTagId);

    /**
     * 获取用户的店铺客户or会员标签
     * @param userId
     * @param shopId
     * @return
     */
    List<UserTagParam> getUserShopTag(String userId, Long shopId);
}
